package com.vshop.entity.agatewaytobeijing.queryh5order.response;

import com.vshop.entity.agatewaytobeijing.PackageOrderRefueling;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * @author lm
 * @date 2020/10/30 16:18
 */
@Data
public class H5PackageOrder implements Serializable {
    /**
     * 套餐启用日期，格式为：YYYYMMDD 如果套餐尚未激活，该字段为空
     */
    private String activeDate;
    /**
     * 日程套餐，该节点为空，
     * 购买方式：1-预付费套餐：允许有加油包，订 购周期是固定，不允许续订； 2-后付费套餐：不允许使用加油包， 但是可以迭代订购，举例：如果是 月为单位，订购时，选择的订购周 期可以是 N个月。允许续订。
     */
    private String buyType;
    /**
     * 设备识别码
     */
    private String deviceId;
    /**
     * 套餐预计失效日期，格式为：YYYYMMDD
     */
    private String expireDate;
    /**
     * 套餐流量，单位为：M 字节；日程 套餐，此节点可以为空值；
     */
    private String flow;
    /**
     * 流量的使用率，取值为： used_flow/flow，为百分比； 日程套餐此节点取值为空；
     */
    private String flowUseRate;
    /**
     * 是否首单 1 是 0 否
     */
    private String isFirstOrder;
    /**
     * 该设备是否订购了加油包，取值如 下： 0-未订购加油包； 1-订购加油包； 当 buy_type=1 时，即设备当前订购 的是预付费流量套餐，此字段存在， 其他情况，不存在
     */
    private String isOrderRefuelingPackage;
    /**
     * 套餐订单编码
     */
    private String orderCode;
    /**
     * 套餐订购日期，格式为：YYYYMMDDhhmiss
     */
    private String orderDate;
    /**
     * 套餐的订购周期
     */
    private String orderPeriod;
    /**
     * 订单状态： 0-未支付； 1-未启用； 2-开始使用； 3-已结束； 4-已取消； 5-已暂停；
     */
    private String orderStatus;
    /**
     * 该订单一共使用总流量；单位为KB； 日程套餐此节点取值为空；
     */
    private String orderUsedFlow;
    /**
     * 资费套餐编码
     */
    private String packageCode;
    /**
     * 资费套餐名称
     */
    private String packageName;
    /**
     * 0-日程套餐； 1-日流量套餐； 2-月流量套餐； 3-季度流量套餐； 4-半年流量套餐； 5-年流量套餐；
     */
    private String packageType;
    /**
     * 加油包信息，当 is_order_ refueling_package=1 时，存在。
     */
    private List<PackageOrderRefueling> refuelingPackageList;

    /**
     * 套餐使用流量，具体定义如下： ✓ 如果套餐为预付费套餐，则为当前已累计使用的流量，单位 为 KB； ✓ 如果套餐为后付费套餐，则为 当前订购周期单位内，累计使 用的流量。例如，套餐为月套 餐，则为当前月使用的流量； 套餐为季度套餐，则为当前季 度使用的流量； ✓ 日程套餐此节点取值为空； ✓ 单位为 KB；
     */
    private String usedFlow;

}
